<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>js02_var</title>
	<meta name="author" content="Stark" />
	<!-- Date: 2018-10-15 -->
	<script type="text/javascript">
		// 对应js而言，是没有数据类型的，全部都是通过var来完成变量的创建
		var a = 19;
		// alert(a);
		a = "hello";
		// alert(a);
		
		function fn1() {
			var c = 10;
			alert(c);
		}
		function fn2() {
			// 当在函数内部没有使用var来声明变量的时候，这个变量就会被作为全局变量声明
			// 所以在函数中定义变量一定要使用var
			b = 10;
			alert(b);
			// alert(c);
		}
		function fn3() {
			alert(b);
		}
		
		// 变量的类型,常用的类型有:Number,String,Array,Date,Boolean
		var a = 10.6;
		// alert(typeof a);
		a = "11";
		// java进行强制类型转换是(Number)a,而JavaScript是通过Number(a);
		// alert(Number(a)+1);
		// 如果强制转换一个非数字的值为Number会得到一个NaN的值
		var b = "abc";
		// alert(Number(b)+1);
		b = "12px";
		// 使用parseInt可以将字符串开头的几个数字转换为int，但是如果开头不是数字，那就得到NaN
		// alert(parseInt(b));
		var as = ["a","b",1,2,3];
		// 对于数组的对象而言，显示的结果就是object类型，不会显示Array类型
		// alert(typeof as);
		// 判定as是否是Array的实例，ture/false
		// alert(as instanceof Array);
		// alert(typeof fn3);
		
		// 布尔类型：true和false，在js中，非0就是true,注意:NaN是false
		// alert(!!"abc");
		// alert(!!NaN);
		// 当一个变量没有定义值的时候，他是undefined类型，undefined类型是false
		// 特别注意：在js中除了NaN,undefined,0这个三个数是false外其余皆是true
		var size;
		// alert(!!size);
		for(var i=0;i<as.length;i++){
			alert(as[i]);
		}
	</script>
</head>
<body>
	<input type="button" value="运行fn1" onclick="fn1()" />
	<input type="button" value="运行fn2" onclick="fn2()" />
	<input type="button" value="运行fn3" onclick="fn3()" />
</body>
</html>

